const express = require('express');
const router = express.Router();
const Users = require('../../../controller/user/users-controller');

/**
 * 注册 - 创建普通用户信息
 * @route POST /api/private/users/register
 * @group 用户管理 - 创建用户
 * @param {string} userId - 用户名
 * @param {string} eMail - 邮箱
 * @param {string} phoneNumber - 手机号
 * @param {string} password - 密码
 * @param {string} verificationCode - 验证码
 * @param {string} state - 状态
 * @param {string} roleName - 角色
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/register', Users.register);

/**
 * 创建用户信息
 * @route POST /api/private/users/create
 * @group 用户管理 - 创建用户
 * @param {string} userId - 用户名
 * @param {string} eMail - 邮箱
 * @param {string} phoneNumber - 手机号
 * @param {string} password - 密码
 * @param {string} state - 状态
 * @param {string} roleName - 角色
 * @returns {object} 200 - 用户信息
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/create', Users.create);

/**
 * 重置用户密码
 * @route POST /api/private/users/resetPassword
 * @group 用户管理 - 重置密码
 * @param {string} id - 主键
 * @param {string} eMail - 邮箱
 * @param {string} phoneNumber - 手机号
 * @param {string} password - 密码
 * @param {string} verificationCode - 验证码
 * @returns {object} 200 - null
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/resetPassword', Users.resetPassword);

/**
 * 更新用户信息
 * @route POST /api/private/users/update
 * @group 用户管理 - 更新
 * @param {string} id - 主键
 * @param {string} userId - 用户名
 * @param {string} eMail - 邮箱
 * @param {string} phoneNumber - 手机号
 * @param {string} password - 密码
 * @param {string} verificationCode - 验证码
 * @param {string} state - 状态
 * @param {string} roleName - 角色
 * 
*/
router.post('/update', Users.update);

/**
 * 查询所有用户信息 
 * @route POST /api/private/users/list
 * @group 用户管理 - 查询所有用户
 * @param {object} query - 请按固定查询规范
 * @returns {object} 200 - null
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/list', Users.findAll);

/**
 * 查询单个用户信息 
 * @route POST /api/private/users/findOne
 * @group 用户管理 - 查询单个用户
 * @param {string} id - 主键
 * @param {string} type - token 查询
 * @returns {object} 200 - null
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/findOne', Users.findOne);

/**
 * 删除用户 
 * @route POST /api/private/users/delete
 * @group 用户管理 - 删除用户
 * @param {string} id - 主键
 * @returns {object} 200 - null
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/delete', Users.delete);

/**
 * 删除所有用户 
 * @route POST /api/private/users/deleteAll
 * @group 用户管理 - 删除所有用户
 * @returns {object} 200 - null
 * @returns {object} 605 - 请求失败错误
 * @returns {Error}  default - Unexpected error
 */
router.post('/deleteAll', Users.deleteAll);

module.exports = router;